package cn.yzfy.common.model.dto;

import cn.yzfy.common.base.dto.BaseDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.io.Serial;
import java.math.BigDecimal;

/**
 * 骑行路线表新增数据DTO对象
 */
@Data
@Builder
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
public class AddRouteDTO extends BaseDTO {
  
  @Serial
  private static final long serialVersionUID = -1;
  
  /**
   * 路线ID
   */
  @Schema(description = "路线ID")
  private Long id;
  
  /**
   * 路线名称
   */
  @Schema(description = "路线名称")
  private String name;
  
  /**
   * 路线地点
   */
  @Schema(description = "路线地点")
  private String location;
  
  /**
   * 标签
   */
  @Schema(description = "标签")
  private String tag;
  
  /**
   * 图片链接
   */
  @Schema(description = "图片链接")
  private String image;
  
  /**
   * 路线描述
   */
  @Schema(description = "路线描述")
  private String description;
  
  /**
   * 路线难度（1简单、2中等、3困难）
   */
  @Schema(description = "路线难度（1简单、2中等、3困难）")
  private Byte difficulty;
  
  /**
   * 路线长度（公里）
   */
  @Schema(description = "路线长度（公里）")
  private Integer distance;
  
  /**
   * 预计骑行时间（分钟）
   */
  @Schema(description = "预计骑行时间（分钟）")
  private Short estimatedTime;
  
  /**
   * 路线推荐
   */
  @Schema(description = "路线推荐")
  private String recommend;
  
  /**
   * 路线坐标（JSON格式）
   */
  @Schema(description = "路线坐标（JSON格式）")
  private String scenicPoints;
  
  /**
   * 中心坐标（经度）
   */
  @Schema(description = "中心坐标（经度）")
  private BigDecimal centerLongitude;
  
  /**
   * 中心坐标（纬度）
   */
  @Schema(description = "中心坐标（纬度）")
  private BigDecimal centerLatitude;
  
  /**
   * 备注
   */
  @Schema(description = "备注")
  private String remark;
  
  /**
   * 逻辑删除
   */
  @Schema(description = "逻辑删除")
  private Byte deleted;
}